x86/MSI: fix guest unmasking when handling IRQ via event channel
authorJan Beulich <jbeulich@suse.com>
Fri, 10 Jul 2015 10:36:24 +0000 (12:36 +0200)
committerJan Beulich <jbeulich@suse.com>
Fri, 10 Jul 2015 10:36:24 +0000 (12:36 +0200)
commit84d6add5593d865736831d150da7c38588f669f6
treeb3b97389a6d269a9f74bdebba0cdd4b5960cf262
parente101123463d293408435d57cf51d274aea884856
x86/MSI: fix guest unmasking when handling IRQ via event channel

Rather than assuming only PV guests need special treatment (and
dealing with that directly when an IRQ gets set up), keep all guest MSI
IRQs masked until either the (HVM) guest unmasks them via vMSI or the
(PV, PVHVM, or PVH) guest sets up an event channel for it.

To not further clutter the common evtchn_bind_pirq() with x86-specific
code, introduce an arch_evtchn_bind_pirq() hook instead.

Reported-by: Sander Eikelenboom <linux@eikelenboom.it>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Tested-by: Sander Eikelenboom <linux@eikelenboom.it>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
xen/arch/x86/irq.c
xen/arch/x86/msi.c
xen/common/event_channel.c
xen/include/asm-arm/irq.h
xen/include/xen/irq.h